//: C12:Comma.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 1999
// Copyright notice in Copyright.txt
// Overloading the ',' operator
#include <iostream>
using namespace std;

class After
{
public:
    const After& operator,(const After&) const {
        cout << "After::operator,()" << endl;
        return *this;
    }
};

class Before {};

Before& operator,(int, Before& b)
{
    cout << "Before::operator,()" << endl;
    return b;
}

int main()
{
    After a, b;
    a, b;  // Operator comma called

    Before c;
    1, c;  // Operator comma called
} ///:~
